The present invention relates to communications, and in particular to the configuration of communications for an ordered collection of devices.
Many large systems today are composed of or include a collection of xe2x80x9csmartxe2x80x9d devices with a common communication infrastructure such as a network. The devices may implement sensing or control functions and are xe2x80x9csmartxe2x80x9d in the sense that they contain a microcontroller that regulates their processing and communication activities. Such devices normally must be programmed with certain application-specific configuration information before they can operate correctly. This configuration process can be costly and time consuming.
Often, a physical process that the devices are monitoring or controlling imposes an implicit ordering on the devices. For example, a collection of controllers for conveyor segments that pass boxes or trays to one another on a manufacturing line is ordered by the arrangement of the conveyor segments. Another example is a collection of sensors arranged in a regular array, such as a line or a grid, for gathering data over a wide area.
A collection of devices with such an ordering normally requires some configuration information to be supplied during system installation before correct operation is possible. This configuration information specifies for each device which of the other devices in the collection are its predecessor and successor with respect to the order.
In prior systems, the configuration information has been provided by the system designer or installer, who assigns each device a location and uses the assignment to determine the device order. Manual determination and programming of the ordering configuration is time-consuming and error prone. The configuration process becomes a significant part of total system cost, both for new installations and during modifications to the system. If the system is modified after configuration, the configuration information must be re-determined and reprogrammed.
In other prior systems, a wiring connection between devices directly links each device to its predecessor and successor in the system. There is a direct physical connection, such as one wire by which a device communications with its predecessor during operation, and a separate wire for communicating with its successor. Both wires are in addition to any network connection that the devices may have. Such direct wiring adds cost for both material and installation. It also increases hardware complexity, at least due to the need for ore connectors. For a networked collection of devices, such a direct physical connection is a redundant communication channel that takes more space and increases cost.
There is a need to determine configuration information quickly and inexpensively. There is also a need to use such configuration information to quickly configure devices. There is a further need to re-configure devices to accommodate changes while the system is operating.
Device configuration information is automatically determined with respect to a physical process that the multiple devices monitor or control. The physical process is exercised, with each device tracking progression of the process and determining a preceding device and a successor device.
In operation, messages are produced in a configuration mode by each device in a system indicating when some phase of the process being monitored begins and ends. These messages are different from normal process messages to enable configuration to occur during normal operation of the system. Once a device has sent both the begin and end configuration messages, it returns to normal operation.
In one embodiment, each device is a controller associated with a segment of a conveyor line. A load is placed on one of the initial segments of the conveyor line and is transferred along a path until it reaches some terminal segment. As a segment is encountered by the load, the associated controller broadcasts a configuration receive message. As the load exits the conveyor segment, a configuration send message is broadcast. A source address is affiliated with each such message, allowing other controllers to determine which segment a load came from. The messages enable the correct controller to configure itself as a succeeding node, and the predecessor controller configures itself as a predecessor to the node that received the load.